<?php
// ------------------------------------------------------------------------
// |@Author       : Jarmin <edshop@qq.com>
// |@----------------------------------------------------------------------
// |@Date         : 2023-06-24 20:38:30
// |@----------------------------------------------------------------------
// |@LastEditTime : 2023-11-28 23:46:59
// |@----------------------------------------------------------------------
// |@LastEditors  : Jarmin <jarmin@ladmin.cn>
// |@----------------------------------------------------------------------
// |@Description  : 
// |@----------------------------------------------------------------------
// |@FilePath     : User.php
// |@----------------------------------------------------------------------
// |@Copyright (c) 2023 http://www.ladmin.cn   All rights reserved. 
// ------------------------------------------------------------------------
namespace app\setting\controller;

use think\admin\Controller;

/**
 * 用户控制器,用于实现用户相关控制器操作
 */
class User extends Controller
{
    /**
     * 获取用户列表
     * @return void
     */
    public function list()
    {
        $result = $this->logicUser->getList($this->app->request->param());
        // 重新构造符合前端的返回结果
        $data = [
            'page' => $result['data']['current_page'],
            'pageSize' => $result['data']['per_page'],
            'total'=> $result['data']['total'],
            'rows' => $result['data']['data'],
        ];
        // 判断操作结果
        if ($result['code'] === SUCCESS) {
            return $this->success($data, $result['message']);
        } else {
            return $this->error($result['code'], $result['message']);
        }
    }

    /**
     * 添加用户信息
     * @validate true
     * @sing true
     * @return mixed 返回成功或失败的提示信息以及添加或修改后的用户信息
     */
    public function add()
    {
        $result = $this->logicUser->saveUser($this->app->request->post());
        // 判断操作结果
        if ($result['code'] === SUCCESS) {
            return $this->success($result['data'], $result['message']);
        } else {
            return $this->error($result['code'], $result['message']);
        }
    }

    /**
     * 编辑用户信息
     * @validate true
     * @sing true
     * @return mixed 返回成功或失败的提示信息以及添加或修改后的用户信息
     */
    public function edit()
    {
        $result = $this->logicUser->saveUser($this->app->request->post());
        // 判断操作结果
        if ($result['code'] === SUCCESS) {
            return $this->success($result['data'], $result['message']);
        } else {
            return $this->error($result['code'], $result['message']);
        }
    }

    /**
     * 启用或禁用用户
     * @sing true
     * @return mixed 返回成功或失败的提示信息以及启用或禁用后的用户信息
     */
    public function state()
    {
        $result = $this->logicUser->stateUser($this->app->request->put());
        // 判断操作结果
        if ($result['code'] === SUCCESS) {
            return $this->success($result['data'], $result['message']);
        } else {
            return $this->error($result['code'], $result['message']);
        }
    }

    /**
     * 重置用户密码
     * @validate true
     * @sing true
     * @password validate true
     * @return mixed 返回成功或失败的提示信息以及重置后的用户信息
     */
    public function reset()
    {
        $result = $this->logicUser->resetUser($this->app->request->post());
        // 判断操作结果
        if ($result['code'] === SUCCESS) {
            return $this->success($result['data'], $result['message']);
        } else {
            return $this->error($result['code'], $result['message']);
        }
    }

    /**
     * 删除指定的用户信息
     * @validate true
     * @sing true
     * @return mixed 返回成功或失败的提示信息以及删除的用户信息
    */
    public function delete()
    {
        $result = $this->logicUser->deleteUser($this->app->request->delete());
        // 判断操作结果
        if ($result['code'] === SUCCESS) {
            return $this->success($result['data'], $result['message']);
        } else {
            return $this->error($result['code'], $result['message']);
        }
    }
}